import axios, {type AxiosResponse} from 'axios'

axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8';

/**
 * 创建 axios 实例
 */
const service = axios.create({
    baseURL: '/',
    timeout: 600000 // 请求超时时间
});

/**
 * 请求拦截器
 */
service.interceptors.request.use(
    config => {
        // 在请求发送之前可以在这里进行一些处理，如添加请求头
        // FormData数据去请求头Content-Type
        if (config.data instanceof FormData) {
            delete config.headers['Content-Type'];
        }
        return config;
    },
    error => {
        // 处理请求错误
        return Promise.reject(error);
    }
);

/**
 * 响应拦截器
 */
service.interceptors.response.use(
    (response: AxiosResponse) => {
        // 在响应返回之前可以在这里进行一些处理，如处理错误
        if (response.data.code !== 200) {
            return Promise.reject(response.data.message);
        }
        return response;
    }, error => {
        // 处理响应错误
        return Promise.reject(error);
    }
);

export default service;
